package com.jike.jkgame.network;

import org.json.JSONException;
import org.json.JSONObject;

import com.jike.jkgame.JKApp;
import com.jike.jkgame.R;

public class ResponseHandler {

	private ResponseHandler() throws IllegalAccessException {
		throw new IllegalAccessException();
	}

	private static String getGeneralErro(int oc) {
		switch (oc) {
		case 0:
			// OK
			return null;
		case 1:
			// 服务器内部错误导致操作失败
			return JKApp.get().getString(R.string.error_server_error);
		case 10:
			return JKApp.get().getString(R.string.error_json_error);
		case 11:
			return JKApp.get().getString(R.string.error_messagetype_error);
		default:
			return JKApp.get().getString(R.string.error_unknown);
		}
	}

	public static String getSignupError(String response) {

		try {
			JSONObject json = new JSONObject(response);

			int oc = json.optInt("oc", -1);

			switch (oc) {
			case 0:
				// 注册成功
				return null;
			case 201:
				// 用户名已经存在
				return JKApp.get().getString(
						R.string.error_signup_already_exist);
			case 202:
				// 用户名格式错误（必须为邮箱）
				return JKApp.get().getString(R.string.error_username_format);
			case 203:
				// 密码格式错误（长度大于等于6）
				return JKApp.get().getString(R.string.error_password_length);
			default:
				return getGeneralErro(oc);
			}
		} catch (JSONException e) {
			return JKApp.get().getString(R.string.error_server_return);
		}

	}

	public static String getLoginError(String response) {
		try {
			JSONObject json = new JSONObject(response);

			int oc = json.optInt("oc", -1);

			switch (oc) {
			case 0:
				// 注册成功
				return null;
			case 212:
				// 登录操作正在进行
				return JKApp.get().getString(R.string.error_logining);
			case 213:
				// 此用户不存在
				return JKApp.get().getString(R.string.error_username_format);
			default:
				return getGeneralErro(oc);
			}
		} catch (JSONException e) {
			return JKApp.get().getString(R.string.error_server_return);
		}
	}
	
	public static String getMissionReqError(String response) {
		try {
			JSONObject json = new JSONObject(response);

			int mt = json.getInt("mt");
			int oc = json.getInt("oc");

			switch (oc) {
			case 0:
				// 成功
				return null;
			default:
				return getGeneralErro(oc);
			}
		} catch (JSONException e) {
			return JKApp.get().getString(R.string.error_server_return);
		}
	}

}
